package com.wocai.jrt.orgadmin.product.dao;

import java.util.List;

import com.vteba.tx.jdbc.mybatis.annotation.DaoMapper;
import com.vteba.tx.jdbc.mybatis.spi.BaseDao;
import com.wocai.jrt.orgadmin.employee.model.Employee;
import com.wocai.jrt.orgadmin.product.bean.CommissionSetResBean;
import com.wocai.jrt.orgadmin.product.bean.ProductReqBean;
import com.wocai.jrt.orgadmin.product.model.Product;
import com.wocai.jrt.orgadmin.product.model.ProductBean;
import com.wocai.jrt.orgadmin.product.model.ProductFundsUse;
import com.wocai.jrt.orgadmin.stats.bean.IndexStatsReqBean;
import com.wocai.jrt.orgadmin.stats.bean.Pie;

/**
 * 表product的MyBatis Dao Mapper。 由代码工具自动生成，可以新增方法，但是不要修改自动生成的方法。
 * 
 * @date 2015-08-13 16:43:27
 */
@DaoMapper
public interface ProductDao extends BaseDao<Product, ProductBean, String> {
	List<CommissionSetResBean> getCommissionSet(Product product);

	List<Product> relatedPagedList(Product product);

	/**
	 * 获取机构下可买产品
	 * 
	 * @param product
	 * @return List<Product>
	 * @author zhangyz
	 */
	List<Product> getBuyableProducts(Product product);

	/**
	 * 获取当前机构下可售所有产品的团队下的所有理财师
	 * 
	 * @param String
	 * @return List<Employee>
	 * @author zhangyz
	 */
	List<Employee> getSellAllProductEmps(String orgId);

	/**
	 * 获取可售指定产品的理财师
	 * 
	 * @param String
	 * @return List<String>
	 * @author zhangyz
	 */
	List<Employee> getSellAppointProEmps(String productId);

	List<CommissionSetResBean> getSaleAllCommissionSet(Product product);

	List<Pie> productSale(IndexStatsReqBean indexStatsReqBean);
	
	Product getDetail(ProductReqBean productReqBean);
	int nativeCountBy(Product product);

	List<Product> issuersPagedList(Product model);

	int issuersCountBy(Product model);
	int updateAddOrEditById(Object obj);

	List<ProductFundsUse> getFundsUse(Product product);
	
	int countByState(Product params);
}